// src/api/apiService.js
import axios from 'axios';

const apiClient = axios.create({
    baseURL: 'http://127.0.0.1:5000', // 替换为你的API基础URL
    withCredentials: false, // 这里根据需要设置
    headers: {
        Accept: 'application/json',
        'Content-Type': 'application/json',
        'Access-Control-Allow-Origin': '*'
    }
});

const headersWithJsonContentType = {
    Accept: 'application/json',
    'Content-Type': 'application/json'
};

// 第三方接口
export const remoteApiClient = {
    // 名人名言
    get_quote() {
        return axios.get('https://v.api.aa1.cn/api/api-wenan-anwei/index.php', {
            params: {
                type: 'json' // 请求参数
            },
            headers: headersWithJsonContentType
        });
    }
};
export const ApiService = {
    study_know(data) {
        return apiClient.post('/api/study/know', data);
    },
    // 查询当前登录用户的学生id
    get_current_student_id(user_id) {
        return apiClient.get(`/api/user/getCurrentStudentId/${user_id}`);
    },
    // 获取学生需要学习的每日学习任务
    get_daily_tasks(student_id) {
        return apiClient.get(`/api/tasks/generate_daily_tasks/${student_id}`);
    },
    // 获取学习任务
    get_tasks(student_id) {
        return apiClient.get(`/api/tasks/${student_id}`);
    },
    // 生成学习任务
    generate_tasks(student_ids, content_ids) {
        return apiClient.post('/api/contents/tasks/generate', {
            student_ids,
            content_ids
        })
    },
    // 用户注册
    register(username, password) {
        return apiClient.post('/api/auth/register', {
            username,
            password
        });
    },
    // 获取日完成率报表
    get_daily_report(student_id) {
        return apiClient.get(`/api/tasks/report/${student_id}`);
    },
    // 获取周完成率报表
    get_weekly_report(student_id) {
        return apiClient.get(`/api/tasks/weekly/report/${student_id}`);
    },
    // 获取遗忘曲线
    get_forget_curve(student_id) {
        return apiClient.get(`/api/tasks/forget/curve/${student_id}`);
    },
    // 删除复习计划
    delete_review_plan(plan_id) {
        return apiClient.delete(`/api/review-plans/${plan_id}`);
    },
    // 获取学习计划
    get_review_plan(student_id) {
        return apiClient.get(`/api/review-plans/${student_id}`);
    },
    // 修改任务状态
    update_task_status(task_id, status) {
        return apiClient.put(`/api/tasks/${task_id}`, {
            status: status
        });
    },
    // 删除学习任务
    delete_task(task_id) {
        return apiClient.delete(`/api/tasks/${task_id}`);
    },
    // 查询学习任务
    get_tasks(student_id) {
        return apiClient.get(`/api/tasks/${student_id}`);
    },
    // 更新学习计划
    update_plan(planId, planData) {
        return apiClient.put(`/api/plan-configs/${planId}`, planData);
    },
    // 删除学习计划配置
    delete_plan_config(config_id) {
        return apiClient.delete(`/api/plan-configs/${config_id}`);
    },

    // 获取学习计划配置
    get_plan_config(userId) {
        return apiClient.get(`/api/plan-configs/${userId}`);
    },

    // 更新学习内容
    update_content(contentId, contentData) {
        return apiClient.put(`/api/contents/update_content/${contentId}`, contentData);
    },
    // 根据id获取学习内容
    get_content_by_id(contentId) {
        return apiClient.get(`/api/contents/get_content_by_id/${contentId}`);
    },
    // 批量删除学习内容
    deleteContents(contentIds) {
        return apiClient.delete('/api/contents', {
            data: {
                content_ids: contentIds
            }
        });
    },
    // 删除学习内容
    deleteContent(contentId) {
        return apiClient.delete(`/api/contents/${contentId}`);
    },
    // 分页查询学习内容
    getContents(page = 1, perPage = 10) {
        return apiClient.get('/api/contents', {
            params: {
                page,
                per_page: perPage,
            },
        });
    },
    // 分页查询学习内容(学习管理)
    getContents_study(page = 1, perPage = 10, student_id) {
        return apiClient.get('/api/contents/study_management', {
            params: {
                page,
                per_page: perPage,
                student_id: student_id
            },
        });
    },
    // 用户登录
    login(username, password) {
        return apiClient.post('/api/auth/login', {
            username,
            password
        });
    },
    // 修改学生信息
    updateStudent(studentId, studentData) {
        return apiClient.put(`/api/students/${studentId}`, studentData);
    },
    // 获取学生列表
    getStudentsList(userId) {
        return apiClient.get('/api/students', {
            params: {
                parent_id: userId
            }
        });
    },
    // 获取单个学生信息
    getStudent(studentId) {
        return apiClient.get(`/api/students/account-info/${studentId}`);
    },
    // 添加学生
    addStudent(student) {
        return apiClient.post('/api/students', student);
    },
    // 删除单个学生
    deleteStudent(studentId) {
        return apiClient.delete(`/api/students/${studentId}`);
    },
    // 删除多个学生
    deleteStudents(studentIds) {
        return apiClient.delete('/api/students', {
            data: {
                student_ids: studentIds
            }
        });
    },
};